package DuoTai;
/*
  狗是一种动物，平均年龄8岁。用肺呼吸，狗通常的时候和人打招呼会通过“摇摇尾巴”，在被抚摸感到舒服的时候，
会“旺旺叫”，而在受到惊吓情绪烦躁时，会发出“呜呜”声；
  猫也是一种动物，平均年龄6岁。用肺呼吸，猫通常的时候和人打招呼会发出“喵～”的声音，在被抚摸情绪很好时，
会发出“咕噜咕噜”声，而在受到惊吓时，会发出“嘶嘶”声；
草鱼也是一种动物，平均年龄3岁。用腮呼吸，通常情况，草鱼会缓慢游动；当草鱼情绪好的时候，会在水面打水花，而在受到惊吓时，会很快躲进水草中；
青蛙是一种动物。平均年龄5岁。用皮肤呼吸，没有腮。通常情况，青蛙会在岸上跳跃；当青蛙情绪好的时候，会在岸边“呱呱呱”的唱歌，而在受到惊吓时，会“扑通一声跳入水中”；

将以上描述使用抽象方法和抽象类方式实现。
 */

public class Practice {
    public static void main(String[] args) {
        Ani aa = new C();
        aa.setState(1);
        System.out.println(aa.age);
    }
}


abstract class Ani{
    protected  int age;
    protected int state;
    public static final int NORMAL = 0;
    public static final int HAPPY = 1;
    public static final int SCARE = 2;

    public Ani(int age){
        this.age = age;
    }
      /**呼吸方法*/
    public abstract void breath();

    public abstract void sayHi();
    public abstract void feelGood();
    public abstract void feelBad();

    public void setState(int state){
        this.state = state;
        if (state == NORMAL){
            this.sayHi();
        }else if (state == HAPPY){
            this.feelGood();
        }else if (state == SCARE){
            this.feelBad();
        }
    }
}

class D extends Ani{

    public D() {
        super(6);
    }

    @Override
    public void breath() {
        System.out.println("用肺呼吸");
    }


    @Override
    public void sayHi() {
        System.out.println("摇尾巴");
    }

    @Override
    public void feelGood() {
        System.out.println("汪汪叫");
    }

    @Override
    public void feelBad() {
        System.out.println("呜呜叫");
    }
}


class C extends Ani{

    public C() {
        super(8);
    }


    @Override
    public void breath() {
        System.out.println("肺呼吸");
    }

    @Override
    public void sayHi() {
        System.out.println("喵~");
    }

    @Override
    public void feelGood() {
        System.out.println("咕噜咕噜");
    }

    @Override
    public void feelBad() {
        System.out.println("嘶嘶");
    }
}

class F extends Ani{

    public F() {
        super(3);
    }


    @Override
    public void breath() {
        System.out.println("用鳃呼吸");
    }

    @Override
    public void sayHi() {
        System.out.println("游动");
    }

    @Override
    public void feelGood() {
        System.out.println("打水花");
    }

    @Override
    public void feelBad() {
        System.out.println("躲进草丛");
    }
}

